package JavaCollection.CollectionsLearn;



import org.junit.jupiter.api.Test;

import java.util.*;

/**
 * @author Lenl
 * @version v1.0
 * @create 2021-06-05 15:16
 * @description Collections:操作Collection与Map的工具类
 *
 * 面试题:Collection与Collections的区别：接口、工具类
 *
 *
 */
public class CollectionsTest {
    @Test
    public void test1(){
        List list=new ArrayList();
        list.add(1);
        list.add(23);
        list.add(-23);
        list.add(28);
        list.add(12);

        System.out.println(list);

        //1.reverse()反转集合
        Collections.reverse(list);
        System.out.println(list);
        //System.out.println(Collections.max(list));
        //2.shuffle() 随机化
        Collections.shuffle(list);
        System.out.println(list);
        //sort()排序：自然排序，升序
        //sort(list,comparator):定制排序
        Collections.sort(list);
        System.out.println(list);
        //swap()交换指定索引上的两个元素
        Collections.swap(list,1,3);
        System.out.println(list);

        //Object max(Collection):获取给定集合最大值
        //Object max(Collection,Comparator):根据Comparator给定的顺序返回最大值
        //Object min(Collection):获取给定集合最小值
        //Object min(Collection,Comparator):根据Comparator给定的顺序返回最小值
        System.out.println(Collections.max(list));

        //frequency()返回指定元素出现的频率
        System.out.println(Collections.frequency(list,1));

        //copy(List dest,List src):将src中的内容复制到指定的dest中
        //List dest=new ArrayList();
        //Collections.copy(dest,list);//直接加会异常，长度不足
        List dest= Arrays.asList(new Object[list.size()]);
        Collections.copy(dest,list);
        System.out.println(dest);

        /*
        解决线程安全问题
         */
        List list1=Collections.synchronizedList(list);//Map同理

    }
}
